Comment réduire son VDI de VirtualBox ?

À un moment, votre disque VDI de VirtualBox prend trop de place et vous souhaitez le réduire.


Je me suis basé sur cet article.


Par exemple, ici, j'ai réduis ma VM de 250go à 50go. En effet, les disques virtuels de VM s'aggrandissent, prennent tout l'espace que l'on propose. Par contre, lorsque nous supprimons des fichiers, le disque de la VM, donc le VDI ne se réduit pas automatiquement.


Pour ce faire, il faut écrire des zéros, puis utiliser une commande de Virtual Box, qui s'occupera de supprimer les zéros, donc les espaces en trop.


ATTENTION, avant de commencer, vérifier si'l n'y a pas de snapshot. S'il y en a, je conseille de les supprimer. Je n'ai jamais testé la procédure avec des snapshots, peut-être que cela fonctionne. Au besoin, ne pas hésiter à sauvegarder son VDI sur un disque dur externe


Vérifier que son disque est bien en "Dynamically allocated storage", en faisant clique droit sur la machine concernée, puis "Configuration" ou CTRL+S. Puis aller dans l'onglet "Stockage" et vérifier dans le paramètre "Détails".


Vue Linux

Depuis la VM, défragmenter le disque Windows avec l'outil de défragmentation.


À la suite des différents passages de défragmentation, écrire des zéros avec le logiciel proposé par Microsoft =>Sdelete(voir la source du lien pour écrire des zéros pour la partie Linux).

Ouvrir le CMD en admin, aller dans le dossier du logiciel :


cd "C:\Users\%user%\Downloads"

Ensuite exécuter la commande suivante :


sdelete.exe c: -z

Les zéros vont s'écrire, attendre jusqu'à la fin du processus. Il est normal qu'à la fin le disque virtuel n'apparait pas rempli.


Ensuite bien éteindre la VM !


Passer en CLI SANS droits root, vérifier les disques virtuels existants et présents :


vboxmanage list hdds

Aller dans le chemin où ce situe le disque, puis lancez la commande pour le compacter :


vboxmanage modifymedium disk "C:\path\to\disk.vdi" --compact

À la suite de cela, le disque est bien rétrécit. Redémarrer la VM pour vérifier que le tout fonctionne.